/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package EntidadesDBPrueba;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author Facundo
 */
@Entity
@Table(name = "idiomarequerido", catalog = "tpare", schema = "")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Idiomarequerido.findAll", query = "SELECT i FROM Idiomarequerido i"),
    @NamedQuery(name = "Idiomarequerido.findByNombreIdioma", query = "SELECT i FROM Idiomarequerido i WHERE i.idiomarequeridoPK.nombreIdioma = :nombreIdioma"),
    @NamedQuery(name = "Idiomarequerido.findByIdPerfil", query = "SELECT i FROM Idiomarequerido i WHERE i.idiomarequeridoPK.idPerfil = :idPerfil"),
    @NamedQuery(name = "Idiomarequerido.findByNivel", query = "SELECT i FROM Idiomarequerido i WHERE i.nivel = :nivel")})
public class Idiomarequerido implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected IdiomarequeridoPK idiomarequeridoPK;
    @Basic(optional = false)
    @NotNull
    @Column(name = "nivel", nullable = false)
    private int nivel;

    public Idiomarequerido() {
    }

    public Idiomarequerido(IdiomarequeridoPK idiomarequeridoPK) {
        this.idiomarequeridoPK = idiomarequeridoPK;
    }

    public Idiomarequerido(IdiomarequeridoPK idiomarequeridoPK, int nivel) {
        this.idiomarequeridoPK = idiomarequeridoPK;
        this.nivel = nivel;
    }

    public Idiomarequerido(String nombreIdioma, int idPerfil) {
        this.idiomarequeridoPK = new IdiomarequeridoPK(nombreIdioma, idPerfil);
    }

    public IdiomarequeridoPK getIdiomarequeridoPK() {
        return idiomarequeridoPK;
    }

    public void setIdiomarequeridoPK(IdiomarequeridoPK idiomarequeridoPK) {
        this.idiomarequeridoPK = idiomarequeridoPK;
    }

    public int getNivel() {
        return nivel;
    }

    public void setNivel(int nivel) {
        this.nivel = nivel;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idiomarequeridoPK != null ? idiomarequeridoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Idiomarequerido)) {
            return false;
        }
        Idiomarequerido other = (Idiomarequerido) object;
        if ((this.idiomarequeridoPK == null && other.idiomarequeridoPK != null) || (this.idiomarequeridoPK != null && !this.idiomarequeridoPK.equals(other.idiomarequeridoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "EntidadesDBPrueba.Idiomarequerido[ idiomarequeridoPK=" + idiomarequeridoPK + " ]";
    }
    
}
